//
// Created by anker on 2023/1/30.
//
#include <jni.h>
#include <string>

/**
 *
 * @param env 环境变量
 * @param cls Java类
 * @return  true:需要抛出异常
 */
bool throwByClassName(JNIEnv *env, jclass cls) {
    //检查代码运行中是否 出现异常
    jthrowable exc = env->ExceptionOccurred();
    if (exc) {
        jclass newExcCls;
        env->ExceptionDescribe();
        // 清理堆栈信息
        env->ExceptionClear();
        newExcCls = env->FindClass("java/lang/Exception");

        if (newExcCls != NULL) {
            // 抛出一个新的 异常
            env->ThrowNew(newExcCls, "thrownNew from C++ code");
            /* free the local ref *********释放本地资源很关键 */
            env->DeleteLocalRef(cls);
        }
//        env->Throw(exc);

        return true;
    }
    return false;
}



